package edu.pku.sei.transformation.mtparser;

public class MTParserprs implements lpg.runtime.ParseTable, MTParsersym {
    public final static int ERROR_SYMBOL = 52;
    public final int getErrorSymbol() { return ERROR_SYMBOL; }

    public final static int SCOPE_UBOUND = 21;
    public final int getScopeUbound() { return SCOPE_UBOUND; }

    public final static int SCOPE_SIZE = 22;
    public final int getScopeSize() { return SCOPE_SIZE; }

    public final static int MAX_NAME_LENGTH = 22;
    public final int getMaxNameLength() { return MAX_NAME_LENGTH; }

    public final static int NUM_STATES = 96;
    public final int getNumStates() { return NUM_STATES; }

    public final static int NT_OFFSET = 52;
    public final int getNtOffset() { return NT_OFFSET; }

    public final static int LA_STATE_OFFSET = 1006;
    public final int getLaStateOffset() { return LA_STATE_OFFSET; }

    public final static int MAX_LA = 1;
    public final int getMaxLa() { return MAX_LA; }

    public final static int NUM_RULES = 85;
    public final int getNumRules() { return NUM_RULES; }

    public final static int NUM_NONTERMINALS = 48;
    public final int getNumNonterminals() { return NUM_NONTERMINALS; }

    public final static int NUM_SYMBOLS = 100;
    public final int getNumSymbols() { return NUM_SYMBOLS; }

    public final static int SEGMENT_SIZE = 8192;
    public final int getSegmentSize() { return SEGMENT_SIZE; }

    public final static int START_STATE = 575;
    public final int getStartState() { return START_STATE; }

    public final static int IDENTIFIER_SYMBOL = 5;
    public final int getIdentifier_SYMBOL() { return IDENTIFIER_SYMBOL; }

    public final static int EOFT_SYMBOL = 47;
    public final int getEoftSymbol() { return EOFT_SYMBOL; }

    public final static int EOLT_SYMBOL = 47;
    public final int getEoltSymbol() { return EOLT_SYMBOL; }

    public final static int ACCEPT_ACTION = 920;
    public final int getAcceptAction() { return ACCEPT_ACTION; }

    public final static int ERROR_ACTION = 921;
    public final int getErrorAction() { return ERROR_ACTION; }

    public final static boolean BACKTRACK = false;
    public final boolean getBacktrack() { return BACKTRACK; }

    public final int getStartSymbol() { return lhs(0); }
    public final boolean isValidForParser() { return MTParsersym.isValidForParser; }


    public interface IsNullable {
        public final static byte isNullable[] = {0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,1,0
        };
    };
    public final static byte isNullable[] = IsNullable.isNullable;
    public final boolean isNullable(int index) { return isNullable[index] != 0; }

    public interface ProsthesesIndex {
        public final static byte prosthesesIndex[] = {0,
            28,23,29,30,34,35,36,37,38,39,
            40,41,42,43,44,45,46,9,27,31,
            32,33,25,26,18,19,20,21,22,24,
            14,16,17,13,15,11,12,7,4,48,
            2,3,5,6,8,10,47,1
        };
    };
    public final static byte prosthesesIndex[] = ProsthesesIndex.prosthesesIndex;
    public final int prosthesesIndex(int index) { return prosthesesIndex[index]; }

    public interface IsKeyword {
        public final static byte isKeyword[] = {0,
            0,0,0,0,0,1,0,0,0,1,
            1,1,1,1,1,1,1,1,1,0,
            1,1,0,0,1,0,0,0,0,1,
            1,1,1,1,0,0,1,1,1,1,
            1,1,1,1,1,1,0,0,0,0,
            1,0
        };
    };
    public final static byte isKeyword[] = IsKeyword.isKeyword;
    public final boolean isKeyword(int index) { return isKeyword[index] != 0; }

    public interface BaseCheck {
        public final static byte baseCheck[] = {0,
            1,2,1,6,1,1,1,1,3,1,
            1,1,1,1,3,1,1,3,5,7,
            1,1,1,3,3,1,1,1,1,2,
            8,8,1,1,3,1,1,8,8,6,
            1,1,1,1,4,10,4,1,1,1,
            1,1,1,1,1,3,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,9,9,3,
            6,3,1,0,1,-8,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-66,0,-86,0,-87,0,0,
            -12,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-16,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-83,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-84,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-27,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-44,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-67,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -13,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-14,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-42,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-43,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-41,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-63,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-38,-64,-65,-95,0,
            -2,-3,-6,-7,-1,-4,-10,-11,-15,-9,
            -17,-18,0,0,0,0,-19,-20,-21,0,
            -82,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-22,-23,
            -24,-25,-26,-28,-29,-30,-31,-32,-37,-39,
            0,-51,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-33,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-34,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -35,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-36,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-40,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-60,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-61,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -62,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-68,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-69,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-80,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-81,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -5,-85,-45,-46,-47,-48,-49,-50,-52,-53,
            -54,-55,-56,-57,-58,-59,-70,-71,0,0,
            -72,-73,-74,-75,-76,-77,-78,-79,-88,-89,
            -90,-91,-92,-93,-94,-96,0,0,0,0,
            0,0,0,0,0,0,0,0,0
        };
    };
    public final static byte baseCheck[] = BaseCheck.baseCheck;
    public final int baseCheck(int index) { return baseCheck[index]; }
    public final static byte rhs[] = baseCheck;
    public final int rhs(int index) { return rhs[index]; };

    public interface BaseAction {
        public final static char baseAction[] = {
            41,41,42,42,39,43,43,38,38,45,
            46,46,44,36,36,37,34,34,34,35,
            35,31,31,31,32,33,25,25,25,25,
            26,27,28,29,29,30,23,23,24,3,
            4,19,19,19,19,22,20,21,2,2,
            2,2,2,2,2,2,10,8,8,11,
            11,11,11,1,18,9,9,9,9,9,
            9,17,17,12,13,14,15,16,5,5,
            6,7,47,47,47,40,1,58,620,54,
            55,48,49,50,51,52,53,57,65,66,
            67,68,69,70,589,37,42,43,44,622,
            36,623,26,27,28,29,33,16,21,22,
            14,17,578,13,246,895,246,904,246,905,
            577,1,58,620,54,55,48,49,50,51,
            52,53,57,65,66,67,68,69,70,589,
            37,42,43,44,622,36,623,26,27,28,
            29,33,16,21,22,14,17,624,625,1,
            58,620,54,55,48,49,50,51,52,53,
            57,65,66,67,68,69,70,589,37,42,
            43,44,622,36,623,26,27,28,29,33,
            16,21,22,14,17,628,13,1,58,620,
            54,55,48,49,50,51,52,53,57,65,
            66,67,68,69,70,589,37,42,43,44,
            622,36,623,26,27,28,29,33,16,21,
            22,14,17,901,13,1,58,620,54,55,
            48,49,50,51,52,53,57,65,66,67,
            68,69,70,589,37,42,43,44,622,36,
            623,26,27,28,29,33,16,21,22,14,
            17,902,13,1,58,620,54,55,48,49,
            50,51,52,53,57,65,66,67,68,69,
            70,589,37,42,43,44,622,36,623,26,
            27,28,29,33,16,21,22,15,17,1,
            58,620,54,55,48,49,50,51,52,53,
            57,65,66,67,68,69,70,589,37,42,
            43,44,622,36,623,26,27,28,29,33,
            16,21,22,884,17,1,58,620,54,55,
            48,49,50,51,52,53,57,65,66,67,
            68,69,70,589,37,42,43,44,622,36,
            623,26,27,28,29,33,16,21,22,896,
            17,36,58,620,54,55,48,49,50,51,
            52,53,57,65,66,67,68,69,70,589,
            37,42,43,44,622,36,623,26,27,28,
            29,33,626,21,22,36,58,620,54,55,
            48,49,50,51,52,53,57,65,66,67,
            68,69,70,589,37,42,43,44,622,36,
            30,26,27,28,29,33,36,58,620,54,
            55,48,49,50,51,52,53,57,65,66,
            67,68,69,70,589,37,42,43,44,622,
            36,25,26,27,28,29,33,36,58,620,
            54,55,48,49,50,51,52,53,57,65,
            66,67,68,69,70,589,37,42,43,44,
            622,36,24,26,27,28,29,33,63,58,
            883,54,55,48,49,50,51,52,53,57,
            65,66,67,68,69,70,589,37,42,43,
            44,35,36,109,58,883,54,55,48,49,
            50,51,52,53,57,65,66,67,68,69,
            70,589,85,42,43,44,231,231,231,246,
            906,165,29,83,168,136,164,89,163,21,
            27,216,218,83,879,893,894,220,222,205,
            892,86,58,883,54,55,48,49,50,51,
            52,53,57,65,66,67,68,69,70,589,
            85,42,43,44,3,2,571,576,9,213,
            3,224,226,111,227,229,228,90,152,230,
            129,82,86,58,883,54,55,48,49,50,
            51,52,53,57,65,66,67,68,69,70,
            589,45,42,43,44,132,58,875,54,55,
            48,49,50,51,52,53,57,65,66,67,
            68,69,70,132,58,876,54,55,48,49,
            50,51,52,53,57,65,66,67,68,69,
            70,132,58,877,54,55,48,49,50,51,
            52,53,57,65,66,67,68,69,70,132,
            58,878,54,55,48,49,50,51,52,53,
            57,65,66,67,68,69,70,132,58,882,
            54,55,48,49,50,51,52,53,57,65,
            66,67,68,69,70,132,58,887,54,55,
            48,49,50,51,52,53,57,65,66,67,
            68,69,70,132,58,888,54,55,48,49,
            50,51,52,53,57,65,66,67,68,69,
            70,132,58,891,54,55,48,49,50,51,
            52,53,57,65,66,67,68,69,70,132,
            58,897,54,55,48,49,50,51,52,53,
            57,65,66,67,68,69,70,132,58,898,
            54,55,48,49,50,51,52,53,57,65,
            66,67,68,69,70,132,58,899,54,55,
            48,49,50,51,52,53,57,65,66,67,
            68,69,70,132,58,900,54,55,48,49,
            50,51,52,53,57,65,66,67,68,69,
            70,33,33,232,233,28,155,159,169,237,
            235,239,174,241,160,244,248,178,182,574,
            11,185,189,34,250,254,240,194,200,204,
            207,175,191,261,263,269,271,921,921,5,
            10,921,921,921,573,921,6,921,903,921,
            921
        };
    };
    public final static char baseAction[] = BaseAction.baseAction;
    public final int baseAction(int index) { return baseAction[index]; }
    public final static char lhs[] = baseAction;
    public final int lhs(int index) { return lhs[index]; };

    public interface TermCheck {
        public final static byte termCheck[] = {0,
            0,1,0,0,2,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            0,21,22,23,0,25,0,0,0,2,
            3,31,0,0,6,0,1,5,36,39,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,35,21,22,32,33,
            25,28,0,1,32,33,31,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,0,21,22,0,1,25,0,0,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,23,21,22,0,1,
            0,0,24,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,0,21,
            22,0,1,44,45,0,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,0,42,43,0,4,2,3,0,0,
            2,3,0,0,0,37,38,0,0,34,
            2,20,4,0,0,2,3,0,0,2,
            3,0,20,2,0,4,2,3,0,30,
            0,3,4,0,20,2,3,34,24,0,
            41,2,3,0,0,2,0,4,2,3,
            20,47,0,46,24,0,1,0,1,0,
            1,0,1,0,1,0,0,0,0,0,
            0,0,0,29,0,5,0,1,0,0,
            0,29,2,0,1,0,20,0,1,0,
            5,26,24,0,0,26,3,23,27,27,
            0,23,0,0,4,0,4,40,0,30,
            0,0,4,0,4,0,0,28,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0
        };
    };
    public final static byte termCheck[] = TermCheck.termCheck;
    public final int termCheck(int index) { return termCheck[index]; }

    public interface TermAction {
        public final static char termAction[] = {0,
            921,169,41,921,566,619,981,995,996,994,
            579,980,982,983,997,998,992,993,581,582,
            921,587,588,131,921,621,921,921,921,566,
            745,425,921,921,871,921,169,985,630,391,
            619,981,995,996,994,579,980,982,983,997,
            998,992,993,581,582,627,587,588,928,929,
            621,207,921,169,928,929,425,619,981,995,
            996,994,579,980,982,983,997,998,992,993,
            581,582,921,587,588,921,169,621,921,921,
            619,981,995,996,994,579,980,982,983,997,
            998,992,993,581,582,86,587,588,84,169,
            23,921,925,619,981,995,996,994,579,980,
            982,983,997,998,992,993,581,582,921,587,
            588,921,169,874,873,921,984,981,995,996,
            994,579,980,982,983,997,998,992,993,581,
            582,921,487,456,921,977,566,763,921,921,
            566,781,12,1,921,880,881,921,921,572,
            566,283,968,921,921,566,124,921,921,566,
            835,921,283,566,921,961,566,853,921,940,
            921,591,1002,921,283,566,126,572,953,921,
            355,566,128,921,921,566,921,960,566,569,
            283,920,63,580,952,921,655,921,673,921,
            691,921,709,921,727,34,921,921,13,921,
            921,921,921,629,921,985,80,543,921,921,
            41,64,566,921,799,921,283,921,817,921,
            984,518,939,921,921,632,872,567,885,886,
            921,568,921,921,959,921,1000,319,921,941,
            921,921,999,921,967,921,921,245
        };
    };
    public final static char termAction[] = TermAction.termAction;
    public final int termAction(int index) { return termAction[index]; }

    public interface Asb {
        public final static byte asb[] = {0,
            51,54,45,53,92,47,49,1,93,57,
            56,1,3,3,59,1,61,61,61,61,
            63,65,67,61,105,106,1,85,56,79,
            81,84,7,7,7,7,87,22,89,7,
            4,3,3,1,96,96,98,98,98,76,
            5,101,47,47,98,103,112,61,61,7,
            7,7,24,22,22,22,1,7,7,98,
            76,98,42,115,115,99,113,98,98,7,
            7,5,1,1,92,22,22,76,98,56,
            56,43,43,43,22,43
        };
    };
    public final static byte asb[] = Asb.asb;
    public final int asb(int index) { return asb[index]; }

    public interface Asr {
        public final static byte asr[] = {0,
            39,23,31,25,21,22,10,11,6,12,
            13,16,17,15,14,8,7,9,1,18,
            19,5,0,19,18,1,9,7,8,14,
            15,16,17,11,6,12,13,5,10,21,
            22,3,4,0,6,0,23,0,46,0,
            34,0,34,47,0,20,24,0,35,0,
            1,0,29,0,29,3,26,24,20,40,
            41,30,42,43,36,4,2,0,40,0,
            44,45,0,4,20,0,26,0,38,37,
            0,5,32,33,0,27,0,2,3,0,
            36,1,3,2,26,4,24,20,40,42,
            43,41,30,0,28,0
        };
    };
    public final static byte asr[] = Asr.asr;
    public final int asr(int index) { return asr[index]; }

    public interface Nasb {
        public final static byte nasb[] = {0,
            7,6,6,9,15,6,6,4,11,6,
            6,3,4,4,6,4,6,6,6,6,
            6,6,6,6,6,6,4,6,6,6,
            6,6,13,13,13,13,6,5,6,13,
            4,4,4,4,6,6,6,6,6,6,
            4,6,6,6,6,6,6,6,6,13,
            13,13,4,5,5,1,4,13,13,6,
            6,6,6,6,6,6,6,6,6,13,
            13,4,4,4,18,1,1,6,6,6,
            6,6,6,6,1,6
        };
    };
    public final static byte nasb[] = Nasb.nasb;
    public final int nasb(int index) { return nasb[index]; }

    public interface Nasr {
        public final static byte nasr[] = {0,
            1,0,37,2,18,0,42,0,39,0,
            38,0,2,0,18,43,0,46,0
        };
    };
    public final static byte nasr[] = Nasr.nasr;
    public final int nasr(int index) { return nasr[index]; }

    public interface TerminalIndex {
        public final static byte terminalIndex[] = {0,
            4,16,12,5,52,39,18,19,20,35,
            38,40,41,42,43,46,47,49,50,15,
            24,25,6,7,48,3,9,11,14,29,
            32,33,34,44,8,10,22,23,26,27,
            28,30,31,36,37,45,51,1,2,13,
            21,53
        };
    };
    public final static byte terminalIndex[] = TerminalIndex.terminalIndex;
    public final int terminalIndex(int index) { return terminalIndex[index]; }

    public interface NonterminalIndex {
        public final static byte nonterminalIndex[] = {0,
            70,67,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,60,69,0,
            0,0,68,0,66,0,0,0,0,0,
            65,0,0,64,0,62,63,59,56,71,
            54,55,57,58,0,61,0,0
        };
    };
    public final static byte nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
    public final int nonterminalIndex(int index) { return nonterminalIndex[index]; }

    public interface ScopePrefix {
        public final static char scopePrefix[] = {
            80,114,124,34,132,9,20,1,66,88,
            42,141,141,30,72,94,104,54,27,163,
            150,150
        };
    };
    public final static char scopePrefix[] = ScopePrefix.scopePrefix;
    public final int scopePrefix(int index) { return scopePrefix[index]; }

    public interface ScopeSuffix {
        public final static char scopeSuffix[] = {
            7,122,122,16,139,16,16,7,7,76,
            48,139,146,7,76,98,108,58,7,122,
            159,153
        };
    };
    public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
    public final int scopeSuffix(int index) { return scopeSuffix[index]; }

    public interface ScopeLhs {
        public final static byte scopeLhs[] = {
            3,28,27,20,35,5,5,7,4,3,
            20,35,35,21,4,3,24,20,10,34,
            35,35
        };
    };
    public final static byte scopeLhs[] = ScopeLhs.scopeLhs;
    public final int scopeLhs(int index) { return scopeLhs[index]; }

    public interface ScopeLa {
        public final static byte scopeLa[] = {
            4,24,24,3,30,3,3,4,4,3,
            3,30,41,4,3,3,3,3,4,24,
            40,40
        };
    };
    public final static byte scopeLa[] = ScopeLa.scopeLa;
    public final int scopeLa(int index) { return scopeLa[index]; }

    public interface ScopeStateSet {
        public final static byte scopeStateSet[] = {
            1,17,17,13,21,1,1,1,1,1,
            13,21,21,13,1,1,16,13,1,21,
            21,21
        };
    };
    public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
    public final int scopeStateSet(int index) { return scopeStateSet[index]; }

    public interface ScopeRhs {
        public final static byte scopeRhs[] = {0,
            99,1,70,2,54,0,4,0,54,1,
            27,45,35,10,0,3,53,4,0,54,
            1,27,44,35,10,0,88,1,0,54,
            1,22,0,54,3,54,3,54,1,21,
            0,54,3,54,1,21,0,3,54,3,
            53,4,0,54,1,21,0,3,54,3,
            54,3,53,4,0,54,3,54,1,19,
            0,54,1,19,0,3,54,4,0,54,
            3,54,3,54,1,18,0,54,3,54,
            1,18,0,54,1,18,0,3,54,3,
            54,4,0,54,1,25,0,3,53,3,
            98,4,0,88,28,70,23,37,36,54,
            0,24,0,88,28,70,23,38,36,54,
            0,86,41,86,40,83,39,0,30,0,
            86,40,83,39,0,41,86,30,0,83,
            39,0,40,86,41,86,30,0,40,86,
            30,0,89,23,0
        };
    };
    public final static byte scopeRhs[] = ScopeRhs.scopeRhs;
    public final int scopeRhs(int index) { return scopeRhs[index]; }

    public interface ScopeState {
        public final static char scopeState[] = {0,
            853,835,817,799,781,763,745,727,709,691,
            673,655,591,543,632,518,487,456,425,391,
            245,207,355,319,283,169,131,86,0
        };
    };
    public final static char scopeState[] = ScopeState.scopeState;
    public final int scopeState(int index) { return scopeState[index]; }

    public interface InSymb {
        public final static byte inSymb[] = {0,
            0,93,34,94,6,95,70,23,46,96,
            88,23,39,31,10,1,18,19,21,22,
            70,5,54,25,75,77,20,88,89,83,
            35,88,1,1,1,1,29,2,36,1,
            26,43,42,40,45,44,54,54,54,54,
            26,70,37,38,54,54,86,27,27,3,
            3,3,1,23,23,3,41,1,1,54,
            54,54,99,70,70,53,86,54,54,3,
            3,3,28,28,3,3,3,54,54,88,
            88,98,53,53,3,53
        };
    };
    public final static byte inSymb[] = InSymb.inSymb;
    public final int inSymb(int index) { return inSymb[index]; }

    public interface Name {
        public final static String name[] = {
            "",
            ">",
            "<",
            "=",
            "(",
            ")",
            "{",
            "}",
            "[",
            "]",
            "->",
            "|",
            ",",
            ":",
            "::",
            ";",
            ".",
            "$empty",
            "INTEGER_LITERAL",
            "REAL_LITERAL",
            "STRING_LITERAL",
            "foreach",
            "forall",
            "existone",
            "new",
            "delete",
            "if",
            "then",
            "else",
            "endif",
            "and",
            "or",
            "not",
            "check",
            "enforce",
            "match",
            "full",
            "partial",
            "transformation",
            "rule",
            "env",
            "trace",
            "null",
            "invalid",
            "def",
            "based",
            "true",
            "false",
            "evaluate",
            "exclusiveVars",
            "union",
            "EOF_TOKEN",
            "IDENTIFIER",
            "ERROR_TOKEN",
            "goal",
            "RuleSemantics",
            "BasicRuleSemantics",
            "MODE",
            "RuleSemanticsBody",
            "SimpleMode",
            "Name",
            "ModeName",
            "Expression",
            "CommaExpr",
            "SingleExpr",
            "LogicSemanticsExpr",
            "BooleanExpr",
            "AtomicExpr",
            "BooleanFactorExpr",
            "OperationSemanticsExpr",
            "UserDefinedVarExpr",
            "Param"
        };
    };
    public final static String name[] = Name.name;
    public final String name(int index) { return name[index]; }

    public final int originalState(int state) {
        return -baseCheck[state];
    }
    public final int asi(int state) {
        return asb[originalState(state)];
    }
    public final int nasi(int state) {
        return nasb[originalState(state)];
    }
    public final int inSymbol(int state) {
        return inSymb[originalState(state)];
    }

    /**
     * assert(! goto_default);
     */
    public final int ntAction(int state, int sym) {
        return baseAction[state + sym];
    }

    /**
     * assert(! shift_default);
     */
    public final int tAction(int state, int sym) {
        int i = baseAction[state],
            k = i + sym;
        return termAction[termCheck[k] == sym ? k : i];
    }
    public final int lookAhead(int la_state, int sym) {
        int k = la_state + sym;
        return termAction[termCheck[k] == sym ? k : la_state];
    }
}
